package cn.iocoder.yudao.module.crossborder.order.controller.admin.orderaddress.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 跨境电商订单地址分页 Request VO")
@Data
public class OrderAddressPageReqVO extends PageParam {

    @Schema(description = "订单编号", example = "19308")
    private Long orderId;

    @Schema(description = "地址类型（1收货地址 2账单地址 3退货地址）", example = "1")
    private Integer addressType;

    @Schema(description = "名", example = "王五")
    private String firstName;

    @Schema(description = "姓", example = "芋艿")
    private String lastName;

    @Schema(description = "全名", example = "李四")
    private String fullName;

    @Schema(description = "公司")
    private String company;

    @Schema(description = "电话")
    private String phone;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "国家代码")
    private String countryCode;

    @Schema(description = "国家名称", example = "王五")
    private String countryName;

    @Schema(description = "省份")
    private String province;

    @Schema(description = "城市")
    private String city;

    @Schema(description = "区县")
    private String district;

    @Schema(description = "地址行1")
    private String addressLine1;

    @Schema(description = "地址行2")
    private String addressLine2;

    @Schema(description = "邮政编码")
    private String postalCode;

    @Schema(description = "纬度")
    private BigDecimal latitude;

    @Schema(description = "经度")
    private BigDecimal longitude;

    @Schema(description = "税务ID", example = "26609")
    private String taxId;

    @Schema(description = "海关信息JSON")
    private String customsInfo;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}